草庐IT

zero-knowledge proof

全部标签

IO-Zero Copy

要说IO的性能优化就不得不提ZeroCopy(零拷贝),虽然名字叫零拷贝,但其实并不是完全没有拷贝过程,而是尽量减少不必要的拷贝及上下文切换。各种消息队列可以说是将零拷贝技术用到了极致,像Kafka、RocketMQ都用到到了mmap、sendfile等零拷贝技术来提升服务的性能。我们最常用的应用服务Tomcat、Nginx在返回静态资源的时候,都有使用零拷贝技术。普通IO操作以实现类似Tomcat中返回静态资源的功能举例。这个过程一般是读取文件内容,不需要做任何处理直接将读取的数据写入网络Socket中返回给用户,类似下面的伪代码过程。read(file,tmp_buf,len);write